package com.hzw.saas.web.app.old.storage.param;

import java.io.Serializable;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * 资源请求
 *
 * @author zzl
 * @since 01/03/2021
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
// @ApiModel(value = "资源上传请求", description = "资源上传请求参数")
public class ResourceFilePostParam implements Serializable {

    private static final long serialVersionUID = 6055820698040730360L;

    /**
     * 文件所在目录ID，根目录ID为0
     */
    @NotBlank(message = "文件所在目录ID不可为空")
    @ApiModelProperty(value = "文件所在目录ID，根目录ID为0（非ID型目录为目录路径）", position = 2, required = true)
    private String folderId;

    /**
     * 文件完整名称，含后缀
     */
    @NotBlank(message = "文件名称不可为空")
    @ApiModelProperty(value = "文件完整名称，含后缀", position = 3, required = true)
    private String name;

    /**
     * 文件长度，单位：byte
     */
    @NotNull(message = "文件长度不可为空")
    @Min(value = 1, message = "文件长度不可小于1")
    @ApiModelProperty(value = "文件长度，单位：byte", position = 5, required = true)
    private Long length;

    /**
     * 文件摘要，MD5
     */
    @ApiModelProperty(value = "文件摘要，MD5", position = 6)
    private String digest;

    /**
     * 是否覆盖提交
     */
    @ApiModelProperty(value = "是否覆盖提交，false-存在同名文件时会返回409错误，true-存在同名文件时，会覆盖同名文件", position = 8)
    private Boolean cover;

}
